package com.gxa.service;

import com.gxa.pojo.Merchandise;

import java.util.List;
import java.util.Map;


public interface MerchandiseService {

    /**
     * 根据id删除商品
     * @param id 目标商品id
     * @return 影响行数
     */
    int deleteByPrimaryKey(Integer id);

    /**
     * 选择性添加前端提交的商品信息
     * @param record 添加的商品信息
     * @return 影响行数
     */
    int insertSelective(Merchandise record);

    /**
     *  根据id查询商品
     * @param id 目标商品id
     * @return 目标商品
     */
    Merchandise selectByPrimaryKey(Integer id);

    /**
     * 根据商品的id 选择性修改商品信息
     * @param record 修改的商品
     * @return 影响的行数
     */
    int updateByPrimaryKeySelective(Merchandise record);

    /**
     * 模糊查询商品
     * @param like 查询商品关键字
     * @return 符合的商品集合
     */
    List<Merchandise> fuzzyQuery(String like);

    /**
     * 全商品查询
     * @return 所有商品集合
     */
    List<Merchandise> queryAll();

    /**
     *  修改上架状态
     * @param putaway 是否上架 默认为0:未上架   1:上架
     * @param id 目标id
     * @return 影响行数
     */
    int updateStatus(Integer putaway,Integer id);

    /**
     * 批量删除
     * @param arr 删除目标id数组
     * @return 影响行数
     */
    Integer deleteBatch(List<Integer> arr);

    /**
     * 查询已上架商品
     * @return 已上架商品信息
     */
    List<Merchandise> isPutaway();

    /**
     * 查询未上架商品
     * @return 未上架商品信息
     */
    List<Merchandise> notPutaway();

    /**
     * 联合查询
     * @param map 查询条件
     * @return 符合的结果集
     */
    List<Merchandise> conjunctiveQuery(Map<String,Object> map);

    List<String> typeList();

    List<String> brandList();
}
